<?php


class PacketUserImplementation extends PacketUserValidator implements PacketUserInterface   {
    
    
  public function retunDataUser($userId,$plataformaId,$accessSecurity){


      //validar seguridad (pendiente)
      //validar usuario y plataforma
      //-(si existe el usuario+si existe la plaforma+si el usuario esta en esa plataforma)
      //todo eso lo hace el metodo "UserExistsPlatform"

      $userValidator = new UserValidator();
      $success_validator = $userValidator->UserExistsPlatform($userId,$plataformaId);
      if($success_validator['success']){
           $userBean       = $success_validator['object']['userBean'];
           $plataformaBean = $success_validator['object']['plataformaBean'];
          //ahora retornar la informacion del usuario
          $criterio_busqueda = new Criteria();
          $criterio_busqueda->add(UsuarioPaquetePeer::USUARIO_ID,$userBean->getId() );
          $criterio_busqueda->add(PaquetePeer::PLATAFORMA_ID,$plataformaBean->getId());
          $criterio_busqueda->add(UsuarioPaquetePeer::FLAGS,'H');
          $criterio_busqueda->addJoin(UsuarioPaquetePeer::PAQUETE_ID, PaquetePeer::ID);
          $criterio_busqueda->addJoin(PaquetePeer::PLATAFORMA_ID, PlataformaPeer::ID);
          $paquete = PaquetePeer::doSelectOne($criterio_busqueda);

          if(is_object($paquete)){
                $criterio_busqueda->clear();
                $criterio_busqueda->add(DetallePaqueteCaracteristicaPeer::PAQUETE_ID,$paquete->getId());
                $listado_detalle = DetallePaqueteCaracteristicaPeer::doSelect($criterio_busqueda);
                if(count($listado_detalle)>0){
                    return array("success"=>true,"paquete"=>$paquete,"detalle" =>$listado_detalle);
                }else{
                    return array("success"=>true,"paquete"=>$paquete,"detalle" =>false);
                }
          }else{
               return array("success"=>false,"message"=>"{retunDataUser}=>paquete no econtrado!");
          }
      }else{
          return array("success"=>false,"message"=>"{retunDataUser}=>{method->userValidator->UserExistsPlatform}");
      }
      
      

  }


   public function registerPackageAceptor($userId,$plataformaId,$accessSecurity,$typePackage="aceptor-basico"){

      //validar seguridad (pendiente)
      //tengo que verificar si el usuario existe
      //tengo que verificar el tipo de paquete
      //asocio el paquete
      $userValidator = new UserValidator();
      $success_validator = $userValidator->UserExistsPlatform($userId,$plataformaId);
      if($success_validator['success'])
      {
           $userBean       = $success_validator['object']['userBean'];
           $plataformaBean = $success_validator['object']['plataformaBean'];

           //verificar si el paquete existe
           $success_validator = $this->PacketExists($typePackage);
           if($success_validator['success'])
           {
               try
               {
                   $paqueteUsuario = new UsuarioPaquete();
                   $paqueteUsuario->setFechaCompra(time());
                   $paqueteUsuario->setFlags('H');
                   $paqueteUsuario->setPrecioComprado($success_validator['object']->getPrecioActual());
                   $paqueteUsuario->setUsuarioId($userBean->getId());
                   $paqueteUsuario->setPaqueteId($success_validator['object']->getId());
                   $paqueteUsuario->save();
                   return array("success"=>true,"message"=>"exito","object"=>$paqueteUsuario);

               }catch(Exception $e)
               {
                    return array("success"=>false,"message"=>"{registerPackageAceptor}->{catch Exception!!}");
               }            
           }else
           {
               return array("success"=>false,"message"=>"{registerPackageAceptor}->{lib}->{".$success_validator['message']."}");
           }          
      }else
      {
          return array("success"=>false,"message"=>"{registerPackageAceptor}->{lib}->{".$success_validator['message']."}");
      }

   }

    
}


?>
